package com.mark.web.bill.service;

import com.mark.common.ServerResponse;
import com.mark.web.bill.entity.po.GoodsCategory;
import com.mark.web.bill.entity.vo.GoodsCategoryVo;

import java.util.List;
import java.util.Map;

/**
 * @Description: 加工零件种类业务接口定义
 * @Author: Mark
 * @CreateDate: 2019/2/16 21:14
 * @Version: 2.0
 * @Copyright : 豆浆油条个人非正式工作室
 */
public interface IGoodsCateService {

    /**
     * 获取parentId加工零件种类列表信息，如果parentId为null，则获取所有加工种类信息
     * @param parentId ：父级种类id
     * @return ：
     */
    ServerResponse<List<GoodsCategoryVo>> getGoodsCateList(int parentId);

    /**
     * 返回前端渲染Cascader下拉框的数据
     * @return ：
     */
    ServerResponse<List<Map<String, Object>>> getGoodsCateCascader();

    /**
     * 添加一条种类记录
     * @param goodsCategory ：待添加种类的实体
     * @return ：返回添加成功或者失败的提示信息
     */
    ServerResponse<String> add(GoodsCategory goodsCategory);

    /**
     * 搜索种类的信息，如两个参数都为null则返回所有的种类列表信息
     * @param parentId ：父级种类
     * @param categoryName ：模糊搜索种类的名称
     * @return ：
     */
    ServerResponse<List<GoodsCategoryVo>> getSearchGoodsCates(Integer parentId, String categoryName);

    /**
     * 编辑一条加工种类信息
     * @param goodsCategory ：待编辑种类信息
     * @return ：返回编辑成功或者失败的提示信息
     */
    ServerResponse<String> edit(GoodsCategory goodsCategory);

}
